package cn.unknowpupil.init.configure.mybatisplus.base;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * Created at 2020/11/3 by w10g <br>
 * Initialize ParentEntiy ... <br>
 *
 * @author unknowpupil
 * @since 0.0.1
 */
@Data
@Accessors(chain = true)
public class ParentEntity <T extends Model<T>> extends Model<T> implements Serializable {
    /**
     * {@code Long} 主键ID
     * 数据库字段: id BIGINT(20)
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * {@code Date} 创建日期
     * 数据库字段: create_time datetime(0)
     * 创建日期
     * 是因为全局配置格式或了JackJson 的日期为字符串了
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "create_time", fill = FieldFill.INSERT)

    private Date createTime;


    /**
     * {@code String} 创造操作
     * 新增执行
     */
    @TableField(value = "create_by", fill = FieldFill.INSERT)

    private String createBy;
    /**
     * {@code Integer} 状态 0: 正常 1: 禁用
     * 数据库字段: status String(256)
     */
    @TableField(value = "status")
    private String status;

    @Override
    protected Serializable pkVal() {
        return id;
    }
}
